// pages/templateList/templateList.js
const app = getApp();
import CommonService from '../../../utils/service/commonService.js';
import Toast from '../../../miniprogram_npm/@vant/weapp/toast/toast';
import Dialog from '../../../miniprogram_npm/@vant/weapp/dialog/dialog';
const util = require('../../../utils/util');
import Base64 from '../../../utils/Base64.js';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    //列表
    list:[{
      xxx: 1
    }],
    //页码
    page: 1,
    //是否无更多
    notMore: true,
    //无数据
    showNothing:false,
    //搜索词
    searchValue:'',
    //状态筛选
    optionState:[
      {text: '所有状态', value: -1},
      {text: '未完成', value: 0},
      {text: '已完成', value: 1}
    ],
    valueState: -1,


    //开始时间
    startTime: '开始时间',
    //开始时间选择框
    showStartTime:false,
    //结束时间
    endTime: '结束时间',
    //结束时间选择框
    showEndTime:false,
    //当前时间
    currentStart: new Date().getTime(),
    currentEnd: new Date().getTime(),
    //最小时间
    minDate2:null,
    //最大时间
    maxDate1: new Date().getTime(),
    maxDate2: new Date().getTime(),
    //时间格式
    formatter (type, value) {
      if (type === 'year') {
        return `${value}年`
      } else if (type === 'month') {
        return `${value}月`
      } else if (type === 'day') {
        return `${value}日`
      }
      return value
    },


    //项目选择框
    showProject:false,
    //项目选择数据
    projectList:[],
    //项目id
    projectId:null,
    //项目名称
    projectName:'选择部门',
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //获取列表数据
    //this.getList();
  },

  //获取列表数据
  getList(){
    Toast.loading({
      duration: 0,
      forbidClick: true,
      message: '加载中...'
    });

    let param = {
      isAuth: true,
      className: 'xxx',
      data: {
        //条件xxx:this.data.paramObj.id,
        selectFields: ['id'],
        sort: {
          id: -1
        },
        page: {
          page: this.data.page,
          pageSize: 10
        }
      }
    }

    //模糊查询
    if(this.data.searchValue){
      param.data.xxx='%' +this.data.searchValue+ '%';
    }

    //筛选状态
    if(this.data.valueState!=-1){
      param.data.state=this.data.valueState;
    }

    CommonService.goFindList(param).then(res => {
      if(res.data.data && res.data.data.result && res.data.data.result.length) {
        let result=res.data.data.result;
        console.log('xx列表');
        console.log(result);

        // result.forEach(item => {
        //   //状态
        //   switch(item.state){
        //     case 1:
        //       item.self_state='已完成';
        //       item.self_stateClass='c-2';
        //       break;
        //     case 2:
        //       item.self_state='未受理';
        //       item.self_stateClass='c-1';
        //       break;
        //     case 3:
        //       item.self_state='受理中';
        //       item.self_stateClass='c-3';
        //       break;
        //   }
        //
        //   if (item.deliveryTime){
        //     item.deliveryTime=util.timeFormat(item.deliveryTime);
        //   }
        // });

        this.setData({
          list: this.data.list.concat(result)
        })
        Toast.clear();
      }else{
        this.setData({
          notMore: false
        })
        if(this.data.page==1){
          this.setData({
            showNothing: true
          })
          Toast.clear();
        }else{
          Toast.fail('没有更多了');
        }
      }
    }).catch((error) => {
      this.setData({
        showNothing: true
      })
      Toast.clear();
    })
  },

  //刷新列表和页码
  refreshListAndPage(){
    this.setData({
      list: [],
      page:1,
      notMore: true,
      showNothing: false
    })
    this.getList();
  },

  //获取搜索词
  onChangeSearch(e) {
    this.setData({
      searchValue: e.detail.value
    })
  },

  //点击搜索
  onSearch(){
    this.refreshListAndPage();
  },

  //跳转添加/编辑
  goToAdd({currentTarget}){
    let obj={

    }

    if(currentTarget.dataset.detail){
      let detail=currentTarget.dataset.detail;
      obj.id=detail.id;
    }

    wx.navigateTo({
      url: "/packageA/pages/xxxAdd/xxxAdd?paramObj="+JSON.stringify(obj)
    })
  },

  //删除
  onDelete({currentTarget}){
    Dialog.confirm({
      title: '确定删除xxx吗',
      confirmButtonText:'确定',
      cancelButtonText:'不删除了'
    }).then(() => {
      let detail=currentTarget.dataset.detail;

      let param={
        className:"xxx",
        data:{
          id:detail.id
        }
      }

      CommonService.goDelete(param).then(res=>{
        if (res.statusCode == 200 && res.data.success == true){
          Toast.success('已删除');
          setTimeout(() => {
            //刷新列表和页码
            this.refreshListAndPage();
          }, 1000);
        }else{
          Toast.fail('操作失败');
        }
      }).catch((error) => {
        Toast.fail('操作失败');
      })

    }).catch(() => {
    });
  },

  //选择状态
  onChangeState({detail}) {
    this.setData({
      valueState: detail
    })
    this.refreshListAndPage();
  },


  //显示开始时间
  onShowStartTime(){
    this.setData({
      showStartTime: true
    })
  },

  //隐藏开始时间
  onCloseStartTime(){
    this.setData({
      showStartTime: false
    })
  },

  //确认开始时间
  onConfirmStartTime(e) {
    this.setData({
      currentStart: e.detail,
      minDate2:e.detail,
      startTime:util.timeFormatDay(e.detail),
    })
    this.onCloseStartTime();

    if(this.data.endTime!='结束时间'){
      this.refreshListAndPage();
    }
  },

  //显示结束时间
  onShowEndTime(){
    this.setData({
      showEndTime: true
    })
  },

  //隐藏结束时间
  onCloseEndTime(){
    this.setData({
      showEndTime: false
    })
  },

  //确认结束时间
  onConfirmEndTime(e) {
    this.setData({
      currentEnd: e.detail,
      maxDate1:e.detail,
      endTime:util.timeFormatDay(e.detail),
    })
    this.onCloseEndTime();

    if(this.data.startTime!='开始时间'){
      this.refreshListAndPage();
    }
  },

  //清除时间
  onCancelTime(){
    this.setData({
      startTime: '开始时间',
      endTime: '结束时间'
    })

    this.onCloseStartTime();
    this.onCloseEndTime();
    this.refreshListAndPage();
  },


  //显示项目
  onShowProject(){
    this.setData({
      showProject: true
    })
    this.getProjectList();
  },

  //查询项目
  getProjectList(){
    this.setData({
      projectList: []
    })

    let param = {
      isAuth: true,
      className: 'depart',
      data: {
        searchAll: true,
        selectFields: ['id','name']
      }
    }

    //模糊查询
    if(this.data.valueSearchProject){
      param.data.name='%' + this.data.valueSearchProject + '%';
    }

    CommonService.goFindList(param).then(res=>{
      if(res.data.data && res.data.data.result && res.data.data.result.length){
        let result=res.data.data.result;
        let arr=[];

        result.forEach(item => {
          arr.push({
            text:item.name,
            id:item.id
          });
        });

        this.setData({
          projectList: arr
        })
      }
    }).catch((error) => {
    })
  },

  //隐藏项目
  onCloseProject(){
    this.setData({
      showProject: false,
      valueSearchProject:''
    })
  },

  //确认项目
  onConfirmProject(e){
    this.setData({
      projectId:e.detail.value.id,
      projectName:e.detail.value.text
    })
    this.onCloseProject();
    this.refreshListAndPage();
  },

  //搜索项目
  onChangeProjectVal(e){
    this.setData({
      valueSearchProject: e.detail
    })
    this.getProjectList();
  },


  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if(this.data.notMore){
      this.setData({
        page: this.data.page + 1
      })
      this.getList();
    }
  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage: function () {
  //
  // }

})
